{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Tensorflow Linear Regression"
      ],
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "TensorFlow was created by Google Brain and is used for doing machine learning in neural networks. On the other hand, to use deep learning approaches, you will need large data to train. If not enough data, the model will be overfitting. "
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import pandas as pd\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# fix_yahoo_finance is used to fetch data \n",
        "import fix_yahoo_finance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2007-01-01'\n",
        "end = '2018-11-01'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 downloaded\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/plain": [
              "                 Open       High        Low      Close  Adj Close    Volume\n",
              "Date                                                                       \n",
              "2007-01-03  20.080000  20.400000  19.350000  19.520000  19.520000  28350300\n",
              "2007-01-04  19.660000  19.860001  19.320000  19.790001  19.790001  23652500\n",
              "2007-01-05  19.540001  19.910000  19.540001  19.709999  19.709999  15902400\n",
              "2007-01-08  19.709999  19.860001  19.370001  19.469999  19.469999  15814800\n",
              "2007-01-09  19.450001  19.709999  19.370001  19.650000  19.650000  14494200"
            ],
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2007-01-03</th>\n",
              "      <td>20.080000</td>\n",
              "      <td>20.400000</td>\n",
              "      <td>19.350000</td>\n",
              "      <td>19.520000</td>\n",
              "      <td>19.520000</td>\n",
              "      <td>28350300</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-04</th>\n",
              "      <td>19.660000</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.320000</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>23652500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-05</th>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.910000</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>15902400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-08</th>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>15814800</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-09</th>\n",
              "      <td>19.450001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>14494200</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset['Increase_Decrease'] = np.where(dataset['Volume'].shift(-1) > dataset['Volume'],1,0)\n",
        "dataset['Buy_Sell_on_Open'] = np.where(dataset['Open'].shift(-1) > dataset['Open'],1,0)\n",
        "dataset['Buy_Sell'] = np.where(dataset['Adj Close'].shift(-1) > dataset['Adj Close'],1,0)\n",
        "dataset['Returns'] = dataset['Adj Close'].pct_change()\n",
        "dataset = dataset.dropna()\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 3,
          "data": {
            "text/plain": [
              "                 Open       High        Low      Close  Adj Close    Volume  \\\n",
              "Date                                                                          \n",
              "2007-01-04  19.660000  19.860001  19.320000  19.790001  19.790001  23652500   \n",
              "2007-01-05  19.540001  19.910000  19.540001  19.709999  19.709999  15902400   \n",
              "2007-01-08  19.709999  19.860001  19.370001  19.469999  19.469999  15814800   \n",
              "2007-01-09  19.450001  19.709999  19.370001  19.650000  19.650000  14494200   \n",
              "2007-01-10  19.639999  20.020000  19.500000  20.010000  20.010000  19783200   \n",
              "\n",
              "            Increase_Decrease  Buy_Sell_on_Open  Buy_Sell   Returns  \n",
              "Date                                                                 \n",
              "2007-01-04                  0                 0         0  0.013832  \n",
              "2007-01-05                  0                 1         0 -0.004043  \n",
              "2007-01-08                  0                 0         1 -0.012177  \n",
              "2007-01-09                  1                 1         1  0.009245  \n",
              "2007-01-10                  1                 1         1  0.018321  "
            ],
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "      <th>Increase_Decrease</th>\n",
              "      <th>Buy_Sell_on_Open</th>\n",
              "      <th>Buy_Sell</th>\n",
              "      <th>Returns</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2007-01-04</th>\n",
              "      <td>19.660000</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.320000</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>23652500</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0.013832</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-05</th>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.910000</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>15902400</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>-0.004043</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-08</th>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>15814800</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>-0.012177</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-09</th>\n",
              "      <td>19.450001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>14494200</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.009245</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-10</th>\n",
              "      <td>19.639999</td>\n",
              "      <td>20.020000</td>\n",
              "      <td>19.500000</td>\n",
              "      <td>20.010000</td>\n",
              "      <td>20.010000</td>\n",
              "      <td>19783200</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.018321</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 3,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset.shape"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 4,
          "data": {
            "text/plain": [
              "(2980, 10)"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 4,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import tensorflow as tf\n",
        "\n",
        "import numpy as np\n",
        "\n",
        "print(tf.__version__)"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "1.9.0\n"
          ]
        }
      ],
      "execution_count": 5,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "features = np.array(dataset[['Open','Returns']])\n",
        "target = np.array(dataset['Adj Close'])"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def feature_normalize(dataset):    \n",
        "    mu = np.mean(dataset,axis=0)\n",
        "    std = np.std(dataset,axis=0)\n",
        "    return (dataset - mu)/std"
      ],
      "outputs": [],
      "execution_count": 7,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def append_bias(features,target):\n",
        "    n_samples = features.shape[0]\n",
        "    n_features = features.shape[1]\n",
        "    intercept_feature = np.ones((n_samples,1))\n",
        "    X = np.concatenate((features,intercept_feature),axis=1)\n",
        "    X = np.reshape(X,[n_samples,n_features +1])\n",
        "    Y = np.reshape(target,[n_samples,1])\n",
        "    return X,Y"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "z_features = feature_normalize(features)\n",
        "X_input,Y_input = append_bias(z_features,target)\n",
        "num_features = X_input.shape[1]"
      ],
      "outputs": [],
      "execution_count": 9,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Create TensorFlow ops for placeholders, weights, and weight initialization\n",
        "X = tf.placeholder(tf.float32,[None,num_features])\n",
        "Y = tf.placeholder(tf.float32,[None,1])\n",
        "w = tf.Variable(tf.random_normal((num_features,1)),name='weights')\n",
        "init = tf.global_variables_initializer()"
      ],
      "outputs": [],
      "execution_count": 10,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Define the hyperparameters of the model, the Learning Rate and the number of Epochs.\n",
        "learning_rate = 0.01\n",
        "num_epochs = 1000\n",
        "cost_trace = []\n",
        "pred = tf.matmul(X,w)\n",
        "error = pred - Y\n",
        "cost = tf.reduce_mean(tf.square(error))\n",
        "train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)"
      ],
      "outputs": [],
      "execution_count": 11,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "with tf.Session() as sess:\n",
        "    sess.run(init)\n",
        "    for i in range(num_epochs):\n",
        "        sess.run(train_op,feed_dict={X:X_input,Y:Y_input})\n",
        "        cost_trace.append(sess.run(cost,feed_dict={X:X_input,Y:Y_input}))\n",
        "    error_ = sess.run(error,{X:X_input,Y:Y_input})\n",
        "    pred_ = sess.run(pred,{X:X_input})\n",
        "print('MSE in training:',cost_trace[-1])"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "MSE in training: 0.041643593\n"
          ]
        }
      ],
      "execution_count": 12,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "plt.plot(cost_trace)\n",
        "plt.xlabel('Epoch')\n",
        "plt.ylabel('Cost(MSE)')\n",
        "plt.title('Cost (MSE) versus Epochs while training')"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 13,
          "data": {
            "text/plain": [
              "Text(0.5,1,'Cost (MSE) versus Epochs while training')"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": [
              "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcXFWd9/HPt/clnb1JAgkkkbiAwqiRzQVHRJFBYcYVFRhF0Xl01NFRYZznUWecGR0XEHdmRAERF0BFZFQmIo6jRoIgskoMIYQkpLPvS6d/zx/3VFKpVHV1d7qr0n2/79erXn23qntu3er61jnnLooIzMzMSjXUuwBmZnZockCYmVlZDggzMyvLAWFmZmU5IMzMrCwHhJmZleWAyClJrZLulzS9hut8haRv1Wp9Y5GkF0paXsP1fUTSN/qZf5+kFw5k2ZEm6cuS/u9wL5tnDog6k/R6SYskbZG0UtJ/SXreQb7mUkkvrrLYRcAvImJVes7XJYWkV5S81mVp+l+n8RZJn5a0PJX5EUmXlqx7e5pXeHweICJuAp4u6biD2b5DhaTZ6b3ZUvJ4bb3LVisRcWxE/PxgX2eAn9lqZXl7RPzzcC+bZw6IOpL0XuAy4F+BacCRwBeBs2uw+rcB15RM+yNwQVH5moBXA38qWuYSYD5wAtAF/DlwV8nrvDwixhU93lk07zqycBpRqey1MrFke79dw3XnQo33pyUOiDqRNAH4J+AdEXFjRGyNiN0R8cOIeH9apjX9gl+RHpdJak3zpkq6WdIGSesk/Y+kBknXkAXND9Ov2Q+UWfeRwJOAhSWzfgg8V9KkNH4GcA+wqmiZ5wDfi4gVkVkaEVcPYtN/DvxFhffkYknXl0z7rKTLC++ZpK+mmtbjkj4mqTHN+2tJ/yvpUknrgI9IOlrS7ZI2Sloj6dtp2cIv/6ai9fxc0lvScNnnDVaqlX1Z0q2SNqfXPKpo/imS7kjruUPSKUXzJkv6Wtrv6yV9v+S13ydpdXov3lQ0/czUdLg5vUd/X6Fsj0p6dhp+Y3o/jknjbylZX4ukq9Nr3idpftHrVPzlL+kkSb9Kn9HfKzVFlVnugM9s0T66UNIy4Gdp2e9KWpXes19IOrbk/f5YGn6hslpupfdpMMtOkfRDSZvSfvqYpF+W25axxgFRPycDbcD3+lnmQ8BJwJ8Bx5P9av/HNO99wHKgm6z28Q9ARMR5wDL2/Yr/9zKv+wxgSUT0lkzfAdwEvC6Nnw+Ufvn/BnivpP8j6RmSVHVL9/cAMFvS+DLzrgPOLMxLX/6vAb6Z5l8F9AJHA88EXgK8pej5JwJLgMOAfwH+GfgpMAmYCXxugGUc6vPKeUN6vanA3cC1kAUA8CPgcmAK8BngR5KmpOddA3QAx6btubToNacDE4AjgAuBLxSF+leBt0VEF/B00hdrGbcDL0zDLyB7304tGr+9aNlXAN8CJpJ9Pj5fbaMlHZG272PAZODvgRskdZcuW+UzeyrwNOClafy/gHlk78nvSO9nBf29T4NZ9gvA1rTMBRTVssc6B0T9TAHWlPmSLvYG4J8iYnVE9AAfBc5L83YDM4CjUs3jf2LgF9aaCGyuMO9q4HxlNZxTge+XzP834BOpbIuAxyWV/sN8P/1qLDzeWjSvsN6JpSuOiEfJ/unPSZNeBGyLiN9Imga8DHhPqm2tJvvSfF3RS6yIiM9FRG9EbCd7j44CDo+IHREx0F99g33empLtfVrRvB9FxC8iYidZ4J8saRZZLerhiLgmlfc64EHg5ZJmpG19e0SsT/u3+At7N9nnYndE3AJsAZ5SNO8YSePTc39Xocy3sy8Qnk+2Xwvjp7J/QPwyIm6JiD1kwXV8lfcD4I3ALel5fRFxK9nn5cwBPLfYR9L+3g4QEVdGxOb0fn4EOD59Vsvp730a0LLpR8orgQ9HxLaIuJ/sh0ouOCDqZy0wVf23rR4OPFo0/miaBvBJYDHwU0lLJF08iHWvJ+s/OED6Muwmq6ncXPjHLJq/JyK+EBHPJfuS/xfgypIvxXMiYmLR4z+K5hXWu6FC2b4JnJuGX8++2sNRQDOwsvBFDHyF7JdkwWMlr/UBQMBvU9PImyuss9Rgnze1ZHsfKFemiNgCrCPbh6X7ljR+BDALWBcR6yusb23JD4ttwLg0/EqyL+FHU5PWyRVe43bg+cqOYmsEvk3WvDib7Jf03UXLFjcxbgPaqnxuIdtfry4OTuB5ZD9qBmPv+yepUdLHJf1J0iZgaZo1tcJz+3ufBrpsN9DE/p+t0s/ZmOWAqJ9fkzXpnNPPMivI/tEKjkzTSL+i3hcRc4GXkzX7nJaWq1aTuAeY288/+TfImrD67VuIiO0R8QWywDmmyjoLngYsjYhNFeZ/F3ihpJnAX7IvIB4DdrL/l/H4iDi26Ln7bXdErIqIt0bE4WSd8l+UdDRZcwFkTTgF0wfwvKGYVRiQNI6suWUFB+5byPbv42lbJ0s6oJZVTUTcERFnkwXn94HvVFhuMdmX4LvIjmbbTBYEF5HVGPoGu+4SjwHXlARnZ0R8vFLRBzD99WQHcLyYLMRmp+mDbeYcjB6yZs2ZRdNmVVh2zHFA1ElEbAT+H1lb5zmSOiQ1S3qZpEIb7HXAP0rqljQ1Lf8NAElnKetMFbAJ2JMeAE8Ac/tZ93LgYbI+jXIuB04HflE6Q9J7Uqdeu6Sm1LzUxYFHMlVyKlk7cqWy9ZB1ZH8NeKTwazwiVpL1C3xa0nhlHfJPknRqpdeS9OoUNJCFWAB70joeB96YfpW+mazTvt/nDXD7Sp0p6XmSWsj6IhZGxGPALcCTlR3m3KTs0NhjyGptK8neoy9KmpQ+Fy+otiJlhyC/QdKEiNjNvs9FJbcD72Rfc9LPS8YPxjfImstemt7jtvS5mVlh+X4/s0kX2Y+EtWTh/q/DUM5+pWa1G8kOeuiQ9FSyvrlccEDUUUR8BngvWXNOD9mvrneyr93/Y2TttvcAfyBrn/9YmjcP+G+yttJfA1+Mfcej/xtZsGxQhaNYyJpnzis3IyLWRcSCCn0a24FPk/3aXAO8A3hlRCwpWqZwNErhUdwRf25ad3++SfYr8Zsl088HWoD7yb64r6f/JovnAAslbSHrXH13RDyS5r0VeD/Zl82xwK8G+LxyNpRs73tLtuXDZE1LzybruyEi1gJnkdXU1pI1a50VEWvS884jaxd/EFgNvKef9Rc7D1iammDeTtYXUMntZF+6v6gwPmQpBM8mO3ii8Nl+P5W/cwbymb2arBnucbLPwG8OtpwD9E6yGssqsj6Y68iCaszTwPs1bSxRdrjsXcBp6RdrLdb5cuC8iHhNLdZXb5K+DiyPiH+stqyNHpI+AUyPiDF/NJNPPsmpdBTIQPsNhmudPyQ718Js1EjNSi1ktfjnkB0G+5Z+nzRGOCDMzPrXRdasdDhZc9+ngR/UtUQ14iYmMzMry53UZmZW1qhuYpo6dWrMnj273sUwMxtV7rzzzjURccBlT0qN6oCYPXs2ixYtqncxzMxGFUmlZ/GX5SYmMzMrywFhZmZlOSDMzKwsB4SZmZXlgDAzs7IcEGZmVpYDwszMysplQNyxdB2f+slD7OnzZUbMzCrJZUDcvWwDn79tMdt29Xc7aDOzfMtlQLS1NAKwffdQbxJmZjb25TIgOppTQOxyQJiZVZLLgGh3DcLMrKpcB8Q21yDMzCrKZ0C4icnMrKpcBkRHiwPCzKyaXAfENvdBmJlVlMuAaEtNTDtcgzAzqyiXAdHRkt1IzyfKmZlVlsuAKHRSu4nJzKyyXAZEW3MDkpuYzMz6k8uAkER7c6PPgzAz60cuAwKyZiafSW1mVll+A6Kl0edBmJn1I78B4RqEmVm/chsQHS3ugzAz68+IBYSkKyWtlnRv0bTJkm6V9HD6OylNl6TLJS2WdI+kZ41UuQramt3EZGbWn5GsQXwdOKNk2sXAgoiYByxI4wAvA+alx0XAl0awXEBWg3ATk5lZZSMWEBHxC2BdyeSzgavS8FXAOUXTr47Mb4CJkmaMVNkgO5vaZ1KbmVVW6z6IaRGxEiD9PSxNPwJ4rGi55WnaiGlrbmTH7r6RXIWZ2ah2qHRSq8y0KLugdJGkRZIW9fT0DHmFWSe1axBmZpXUOiCeKDQdpb+r0/TlwKyi5WYCK8q9QERcERHzI2J+d3f3kAvS7qOYzMz6VeuAuAm4IA1fAPygaPr56Wimk4CNhaaokdLe3MjO3j76+spWVMzMcq9ppF5Y0nXAC4GpkpYDHwY+DnxH0oXAMuDVafFbgDOBxcA24E0jVa6Cwn2pt+/eQ2friL0NZmaj1oh9M0bEuRVmnVZm2QDeMVJlKafDAWFm1q9DpZO65gr3hPDJcmZm5eU3IIpqEGZmdqDcBkShiclHMpmZlZfbgGgr3HbU50KYmZWV24DobMk6prftdA3CzKyc/AZEOnJpq2sQZmZl5Tggsiamra5BmJmVleOASE1MrkGYmZWV24DoaHYNwsysP7kNiKbGBtqaG9wHYWZWQW4DArIjmbbudECYmZWT64DoaG10QJiZVZDrgOhsaWKrz6Q2Mysr3wHR6iYmM7NKHBCuQZiZlZXvgGhpZJtrEGZmZeU7INzEZGZWUb4DoqXRTUxmZhXkOiA6Ug0iu+OpmZkVy3VAjGttorcv2LWnr95FMTM75OQ6IAp3lfP1mMzMDpTrgNh7Twh3VJuZHSDfAdHimwaZmVWS74DwTYPMzCrKeUD4pkFmZpXkOiD2dVI7IMzMSuU6IMbt7aR2E5OZWam6BISkv5N0n6R7JV0nqU3SHEkLJT0s6duSWka6HB3upDYzq6jmASHpCOBdwPyIeDrQCLwO+ARwaUTMA9YDF450WQo1iC1uYjIzO0C9mpiagHZJTUAHsBJ4EXB9mn8VcM5IF6KtuYHGBrkPwsysjJoHREQ8DnwKWEYWDBuBO4ENEVH4pl4OHFHu+ZIukrRI0qKenp6DKoskxrU2sXmHA8LMrFQ9mpgmAWcDc4DDgU7gZWUWLXsFvYi4IiLmR8T87u7ugy5PV1sTWxwQZmYHqEcT04uBRyKiJyJ2AzcCpwATU5MTwExgRS0KM661iU0OCDOzA9QjIJYBJ0nqkCTgNOB+4DbgVWmZC4Af1KIw49ua2bxjdy1WZWY2qtSjD2IhWWf074A/pDJcAXwQeK+kxcAU4Ku1KM+4tiYfxWRmVkZT9UWGX0R8GPhwyeQlwAm1LktXWxOLVzsgzMxK5fpMasgCwk1MZmYHyn1AjGttZotvO2pmdoDcB0RXWxO79wQ7e33bUTOzYrkPiPFtWTeMT5YzM9tf7gNi3N6AcD+EmVmx3AdEV2sz4BqEmVmp3AdEoQbhcyHMzPaX+4DochOTmVlZuQ+I8W1ZE5Ovx2Rmtr/cB8TemwY5IMzM9uOA8GGuZmZl5T4gmhsbaGtuYMtO90GYmRXLfUAAdLU1uwZhZlbCAUHhgn0OCDOzYoMKCEmdkhpHqjD10tXWzCYf5mpmtp9+A0JSg6TXS/qRpNXAg8BKSfdJ+qSkebUp5sia0N7Mpu0OCDOzYtVqELcBTwIuAaZHxKyIOAx4PvAb4OOS3jjCZRxxE9qb2eCAMDPbT7U7yr04Ig745oyIdcANwA2SmkekZDU0ob2JjQ4IM7P9VKtBPL8wIGlO8QxJfwVQLkBGm4ntLWzavpu+Pt80yMysoFpAfKpo+IaSef84zGWpmwntzfQFbNnlI5nMzAqqBYQqDJcbH7UmtGetZBu3jfrKkJnZsKkWEFFhuNz4qDW+EBDuhzAz26taJ/VcSTeR1RYKw6TxOZWfNroUahA+1NXMbJ9qAXF20fCnSuaVjo9aE1yDMDM7QL8BERG3F4+nQ1qfDjweEatHsmC1NLEjCwifC2Fmtk+1M6m/LOnYNDwB+D1wNXCXpHNrUL6acA3CzOxAVc+DiIj70vCbgD9GxDOAZwMfGOpKJU2UdL2kByU9IOlkSZMl3Srp4fR30lBff7A6WhppapADwsysSLWA2FU0fDrwfYCIWHWQ6/0s8OOIeCpwPPAAcDGwICLmAQvSeE1IYkJ7swPCzKxItYDYIOksSc8Engv8GEBSE9A+lBVKGg+8APgqQETsiogNZB3iV6XFrgLOGcrrD5UDwsxsf9WOYnobcDkwHXhPUc3hNOBHQ1znXKAH+Jqk44E7gXcD0yJiJUBErJR02BBff0jG+4quZmb7qXYU0x+BM8pM/wnwk4NY57OAv42IhZI+yyCakyRdBFwEcOSRRw6xCAea2NHMuq27qi9oZpYT/QaEpMv7mx8R7xrCOpcDyyNiYRq/niwgnpA0I9UeZgBlD6ONiCuAKwDmz58/bGdzT2hv5pE1W4fr5czMRr1qTUxvB+4FvgOsYBiuvxQRqyQ9JukpEfEQWXPV/elxAfDx9PcHB7uuwZjY3sx61yDMzPaqFhAzgFcDrwV6gW8DN0TE+oNc798C10pqAZaQHULbAHxH0oXAsrTempnU2cKmHb307umjqdG36jYzq9YHsRb4MvBlSUcA5wL3SfpgRFwz1JVGxN3A/DKzThvqax6syZ0tQHY29dRxrfUqhpnZIaNaDQIASc8iC4fTgf8iO/JoTJnUkQXEuq27HBBmZlTvpP4ocBbZiWzfAi6JiDF5V51CDcJHMpmZZarVIP4vWR/B8enxr5Ig66yOiDhuZItXO4WAcEe1mVmmWkCMmXs+VLO3BrHNAWFmBtUDYllE9HuugSRVW2Y0KFzy2zUIM7NMteM5b5P0t5L2O2VZUoukF0m6iuychVGvtamRca1NrHVAmJkB1WsQZwBvBq6TNAfYALQBjcBPgUvTIatjwuTOFtcgzMySaudB7AC+CHwx3U1uKrA9XX11zJnU2cK6bb5gn5kZVG9iAkDSNRGxOyJWFsJB0pBPlDtUTe7w5TbMzAoGek2JY4tH0v0gnj38xamvSZ0tPg/CzCypdk/qSyRtBo6TtCk9NgNPUOOL6dXCFAeEmdle/QZERPxbRHQBn4yI8enRFRFTIuKSGpWxZiZ1trB99x6279pT76KYmdXdQJuYbpbUCSDpjZI+I+moESxXXUzu8MlyZmYFAw2ILwHb0i1CPwA8Clw9YqWqk8JF+tZu2VnnkpiZ1d9AA6I3nS19NvDZiPgs0DVyxaqPqV1ZQPRsdkCYmQ3oct/AZkmXAOcBz5fUCDSPXLHqozsFxBrXIMzMBlyDeC2wE3hzRKwCjgA+OWKlqpOp47I+CNcgzMwGGBApFK4FJkg6C9gREWOuD6K1qZHxbU0OCDMzBn4m9WuA35LdJ/o1wEJJrxrJgtVLd1crPW5iMjMbcB/Eh4DnRMRqAEndwH8D149Uweqlu6uVNZt9mKuZ2UD7IBoK4ZCsHcRzR5XurjbXIMzMGHgN4seSfgJcl8ZfC9wyMkWqr6njWtwHYWZGlYCQdDQwLSLeL+mvgOeR3Y/612Sd1mNOd1crW3b2sn3XHtpbGutdHDOzuqnWTHQZsBkgIm6MiPdGxN+R1R4uG+nC1UP3OJ8LYWYG1QNidkTcUzoxIhYBs0ekRHVWOJt6tZuZzCznqgVEWz/z2oezIIeKQg2iZ/OOOpfEzKy+qgXEHZLeWjpR0oXAnSNTpPqaNj7LRNcgzCzvqh3F9B7ge5LewL5AmA+0AH95MCtO13NaBDweEWdJmgN8C5gM/A44LyJqfkLClM4WmhvFyo2uQZhZvlW7YdATEXEK8FFgaXp8NCJOTpffOBjvBh4oGv8EcGlEzAPWAxce5OsPSUODmDa+jVUOCDPLuYFei+m2iPhcevzsYFcqaSbwF8B/pnEBL2LfmdlXAecc7HqGasaENlZu3F6v1ZuZHRLqdTb0ZWQ3HupL41OADRHRm8aXk10x9gCSLpK0SNKinp6eESmcaxBmZnUIiHQ12NURUdzJrTKLRrnnR8QVETE/IuZ3d3ePSBmzGsQOsnskmZnl00AvtTGcngu8QtKZZIfRjierUUyU1JRqETOBFXUoGwDTJ7Szs7ePDdt2M6mzpV7FMDOrq5rXICLikoiYGRGzgdcBP4uINwC3AYVLiF8A/KDWZSuYMSE71NVHMplZnh1KV2T9IPBeSYvJ+iS+Wq+CTE8BsWqTO6rNLL/q0cS0V0T8HPh5Gl4CnFDP8hS4BmFmdmjVIA4Z3eNaaRA+ksnMcs0BUUZTYwPTxrfx+AY3MZlZfjkgKpg5qZ3l6xwQZpZfDogKZk3q4LH12+pdDDOzunFAVDBzcgerNu1gV29f9YXNzMYgB0QFsya1EwEr3A9hZjnlgKhg1uQOADczmVluOSAqmDkpu2He8vWuQZhZPjkgKpgxoZ2mBvHYOtcgzCyfHBAVNDaIwye285hrEGaWUw6Ifsya3M4y1yDMLKccEP2YPaWTpWu2+r4QZpZLDoh+zO0ex8btu1m/bXe9i2JmVnMOiH7MndoJwJKeLXUuiZlZ7Tkg+jG3OwXEmq11LomZWe05IPpxxMR2mhvFkh4HhJnljwOiH02NDRw1pZNH1riJyczyxwFRxZypna5BmFkuOSCqmDu1k0fXbqN3j6/qamb54oCoYt60Lnbt6WPpWp8wZ2b54oCo4qnTuwB4aNXmOpfEzKy2HBBVHH3YOBoED63aVO+imJnVlAOiirbmRuZM7eQB1yDMLGccEAPw1Onj3cRkZrnjgBiAp07vYtm6bWzd2VvvopiZ1YwDYgCekjqqH3QtwsxypOYBIWmWpNskPSDpPknvTtMnS7pV0sPp76Ral62SZ8ycAMAflm+oc0nMzGqnHjWIXuB9EfE04CTgHZKOAS4GFkTEPGBBGj8kTB/fRndXK/cs31jvopiZ1UzNAyIiVkbE79LwZuAB4AjgbOCqtNhVwDm1Llslkjh+5kR+7xqEmeVIXfsgJM0GngksBKZFxErIQgQ4rH4lO9DxMyfwp56tbNrhmweZWT7ULSAkjQNuAN4TEQM+C03SRZIWSVrU09MzcgUscdysiQDc62YmM8uJugSEpGaycLg2Im5Mk5+QNCPNnwGsLvfciLgiIuZHxPzu7u7aFJisBgFw12NuZjKzfKjHUUwCvgo8EBGfKZp1E3BBGr4A+EGty9afiR0tPHnaOH77yLp6F8XMrCbqUYN4LnAe8CJJd6fHmcDHgdMlPQycnsYPKSfMmcyipet86W8zy4WmWq8wIn4JqMLs02pZlsE6cc4UvvGbZdy/chPHzZxY7+KYmY0on0k9CCfOmQzAwiVuZjKzsc8BMQiHjW9jztROfvWnNfUuipnZiHNADNKpT+7m10vWsmP3nnoXxcxsRDkgBunUp3SzY3cfC300k5mNcQ6IQTp57hRamxq47cGyp2mYmY0ZDohBamtu5JQnTeG2h1YTEfUujpnZiHFADMFLj53Oo2u3cd8K36fazMYuB8QQnPH06TQ1iB/+fkW9i2JmNmIcEEMwsaOFFzy5m5vvWUlfn5uZzGxsckAM0cuPn8HjG7bzu2Xr610UM7MR4YAYotOPmU5HSyPfuuOxehfFzGxEOCCGaFxrE3/1rCO46fcrWLd1V72LY2Y27BwQB+H8k2ezq7ePb7sWYWZjkAPiIDx5Whcnz53CNb9eyq5eXwLczMYWB8RBetupc1mxcQffWeRahJmNLQ6Ig3Tqk7uZf9QkPvezh30BPzMbUxwQB0kS73vJU3hi006u/N9H6l0cM7Nh44AYBic/aQqnHzONyxc8zGPrttW7OGZmw8IBMUw++opjaZT4h+/9wRfxM7MxwQExTA6f2M7FL3sq//PwGr7yiyX1Lo6Z2UFzQAyjN550FH9x3Az+/ccP8suHfVtSMxvdHBDDSBKfeOVxHH3YON52zSLu8nWazGwUc0AMs3GtTVxz4YlM7Wrl/Ct/y6//tLbeRTIzGxIHxAiYNr6Na99yItPGt3H+lQu5duGj7rg2s1HHATFCZk7q4Ia3n8JJc6fwoe/dy4VXLeLxDdvrXSwzswFzQIygCR3NXPWmE/jIy4/hfxev4c8/9XP+5Uf3s2rjjnoXzcysKo3mpo/58+fHokWL6l2MAXl8w3Y+89M/cuNdy2mQeMkx03jF8Yfzgid309naVO/imVmOSLozIuZXXe5QCghJZwCfBRqB/4yIj/e3/GgKiIJH127l2oXL+O6ix1i/bTctTQ08Z/YknnVk9njK9C6mj2+joUH1LqqZjVGjLiAkNQJ/BE4HlgN3AOdGxP2VnjMaA6Kgd08fdyxdz633P8FvlqzlwVWbKNzeuq25gdlTOpk1uYOp41rpHtfC1K5WJne20NnaRGdLEx0tjXS0NNLZ2kRbUyNNjaKpUTQ3NDhczKxfAw2IQ6lt4wRgcUQsAZD0LeBsoGJAjGZNjQ2c/KQpnPykKQBs3dnLvY9vZHHPFh7p2coja7aybO027lq2nrVbdzGYHJeguaGBxoYUGo0NZJkhJFBaRvuNa7/nl5ufXgLHz+AVv79Wnd+t6t512jxefvzhI7qOQykgjgCKb6qwHDixdCFJFwEXARx55JG1KVkNdLY2ceLcKZw4d8oB8/b0Beu27mLd1l1s29XLtl172Loz/d3Vy/Zde9jTF/T2Bb17gt6+PnbvCfakv719ffQFKWSCSMNRGIa9ARRkE7JpsXde8bgNkt+0QfGnbGAmtDeP+DoOpYAo96PhgE9KRFwBXAFZE9NIF+pQ0Nggurta6e5qrXdRzCxHDqXDXJcDs4rGZwIr6lQWM7PcO5QC4g5gnqQ5klqA1wE31blMZma5dcg0MUVEr6R3Aj8hO8z1yoi4r87FMjPLrUMmIAAi4hbglnqXw8zMDq0mJjMzO4Q4IMzMrCwHhJmZleWAMDOzsg6ZazENhaQe4NEhPn0qkLcbR3ub88HbnA8Hs81HRUR3tYVGdUAcDEmLBnKxqrHE25wP3uZ8qMU2u4nJzMzKckCYmVlZeQ6IK+pdgDrwNueDtzkfRnybc9sHYWZm/ctzDcLMzPrhgDAzs7JyGRCSzpD0kKTFki6ud3mGi6RZkm6T9ICk+yS9O02fLOlWSQ+nv5PSdEm6PL0P90h6Vn23YGgkNUq6S9LNaXyOpIVpe7+dLh+PpNY0vjjNn13Pcg+VpImSrpf0YNrXJ+dgH/9d+kzfK+k6SW1jcT9LulLSakmIpfqJAAAE50lEQVT3Fk0b9L6VdEFa/mFJFwy1PLkLCEmNwBeAlwHHAOdKOqa+pRo2vcD7IuJpwEnAO9K2XQwsiIh5wII0Dtl7MC89LgK+VPsiD4t3Aw8UjX8CuDRt73rgwjT9QmB9RBwNXJqWG40+C/w4Ip4KHE+27WN2H0s6AngXMD8ink52O4DXMTb389eBM0qmDWrfSpoMfJjsls0nAB8uhMqgRUSuHsDJwE+Kxi8BLql3uUZoW38AnA48BMxI02YAD6XhrwDnFi2/d7nR8iC78+AC4EXAzWS3rl0DNJXub7J7jZychpvScqr3Ngxye8cDj5SWe4zv48L96ien/XYz8NKxup+B2cC9Q923wLnAV4qm77fcYB65q0Gw78NWsDxNG1NStfqZwEJgWkSsBEh/D0uLjYX34jLgA0BfGp8CbIiI3jRevE17tzfN35iWH03mAj3A11Kz2n9K6mQM7+OIeBz4FLAMWEm23+5kbO/nYoPdt8O2z/MYECozbUwd6ytpHHAD8J6I2NTfomWmjZr3QtJZwOqIuLN4cplFYwDzRosm4FnAlyLimcBW9jU5lDPqtzk1j5wNzAEOBzrJmldKjaX9PBCVtnPYtj+PAbEcmFU0PhNYUaeyDDtJzWThcG1E3JgmPyFpRpo/A1idpo/29+K5wCskLQW+RdbMdBkwUVLhbonF27R3e9P8CcC6WhZ4GCwHlkfEwjR+PVlgjNV9DPBi4JGI6ImI3cCNwCmM7f1cbLD7dtj2eR4D4g5gXjoCooWss+umOpdpWEgS8FXggYj4TNGsm4DCkQwXkPVNFKafn46GOAnYWKjKjgYRcUlEzIyI2WT78WcR8QbgNuBVabHS7S28D69Ky4+qX5YRsQp4TNJT0qTTgPsZo/s4WQacJKkjfcYL2zxm93OJwe7bnwAvkTQp1b5ekqYNXr07ZOrUCXQm8EfgT8CH6l2eYdyu55FVJe8B7k6PM8naXxcAD6e/k9PyIjui60/AH8iOEqn7dgxx218I3JyG5wK/BRYD3wVa0/S2NL44zZ9b73IPcVv/DFiU9vP3gUljfR8DHwUeBO4FrgFax+J+Bq4j62fZTVYTuHAo+xZ4c9r+xcCbhloeX2rDzMzKymMTk5mZDYADwszMynJAmJlZWQ4IMzMrywFhZmZlOSDM+iFpj6S7ix7DdvVfSbOLr9ppdqhpqr6IWa5tj4g/q3chzOrBNQizIZC0VNInJP02PY5O04+StCBdn3+BpCPT9GmSvifp9+lxSnqpRkn/ke518FNJ7XXbKLMSDgiz/rWXNDG9tmjepog4Afg82TWgSMNXR8RxwLXA5Wn65cDtEXE82bWT7kvT5wFfiIhjgQ3AK0d4e8wGzGdSm/VD0paIGFdm+lLgRRGxJF0gcVVETJG0huza/bvT9JURMVVSDzAzInYWvcZs4NbIbgSDpA8CzRHxsZHfMrPqXIMwG7qoMFxpmXJ2Fg3vwf2CdghxQJgN3WuL/v46Df+K7MqyAG8AfpmGFwB/A3vvoT2+VoU0Gyr/WjHrX7uku4vGfxwRhUNdWyUtJPuhdW6a9i7gSknvJ7vz25vS9HcDV0i6kKym8DdkV+00O2S5D8JsCFIfxPyIWFPvspiNFDcxmZlZWa5BmJlZWa5BmJlZWQ4IMzMrywFhZmZlOSDMzKwsB4SZmZX1/wHQFiQ7Qa7tpAAAAABJRU5ErkJggg==\n"
            ],
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 13,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "plt.plot(target, 'ro', label='Real Data')\n",
        "plt.plot(pred_, label='Predicted')\n",
        "plt.xlabel('Date') \n",
        "plt.ylabel('Adj Close')\n",
        "plt.legend()\n",
        "plt.title('Liner Regression')"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 14,
          "data": {
            "text/plain": [
              "Text(0.5,1,'Liner Regression')"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": [
              "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GAM/PXv2ZPv2QFvY559/njPOOIOOHTvy9NNPW+NXXnkl3bp1o3379kyaNKlc56hduzYTJkzg448/Zu/eveTk5NCnTx+6du1Khw4d+OSTTwB49NFH2bRpE507d+bhhx8OO08QhBhh+PDw2yZOjPz5tdYx/+rWrZsOZu3atcXGwtKypdaGCXC+WrYs+zFCkJKSorXWuqioSF977bV6zpw5Wmutv/rqKz1kyBDt8/m01+vVl19+uf7uu++01lpnZ2drrbXOzc3V7du313v27DEvsaXOysoKcenFxzt16qR/+uknXVhYqA8cOKC11jorK0uffPLJ2ufz6S1btuj27dtb88PNC6ZcP1NBEKoO857UcuRs6+W4V1X4sCzTZbjH1tg6gnLxxx/lGy8jR44coXPnzmRmZtKtWzf69esHwNy5c5k7dy5dunQBICcnhw0bNnDuuefy6quvMmuW0cDqzz//ZMOGDaSmppbrvNrsIaG15vHHH2fhwoW4XC62b9/Orl27Qs4PNe/444+vzLcvCMJRwrFhCFq0MNxBocYrgT9GcODAAfr3788bb7zB3/72N7TWPPbYY9x9992O+d9++y3z5s1j8eLFJCcnc/7555c7d//QoUNkZmZy6qmn4vF4yMrKYvny5cTHx5OWlhbyeGWdJwhClHC5jJhAtE4ftTNXJ6NHQ3Kycyw52RivAurVq8err77KCy+8QGFhIRdffDFTpkwhJycHgO3bt7N7924OHDhAgwYNSE5OZv369fz000/lOk9OTg4ZGRlceeWVNGjQgAMHDtCkSRPi4+NZsGABW01jV6dOHQ4dOmTtF26eIAgxQhSNABwrK4L0dOPrqFGGO6hFC8MI+MergC5dutCpUyfeffddbrnlFtatW0fPnj0BI8g7Y8YMLrnkEiZMmEDHjh1p06YNPXr0KNOxL7jgArTW+Hw+rrrqKp588knz20pnwIABdO/enc6dO9O2bVsAUlNT6dWrF6effjqXXnopI0eODDlPEIQYwe0Grzf0tpYtI376GtGzuHv37jq4Mc26des47bTTonRFRyfyMxWEKGFW9qeNnG0NZY7pb7yZMaPCD61KqeVa6+6lzTs2XEOCIAixTDU89ZeEGAJBEIRo07p1+G2jRkX89GIIBEEQos2334bfVg3JHWIIBEEQok24QDEYqaURRgyBIAhCtHG7Aah/5CAA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\n"
            ],
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 14,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "pygments_lexer": "ipython3",
      "version": "3.5.5",
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "nbconvert_exporter": "python",
      "name": "python",
      "codemirror_mode": {
        "version": 3,
        "name": "ipython"
      }
    },
    "kernelspec": {
      "name": "python3",
      "language": "python",
      "display_name": "Python 3"
    },
    "nteract": {
      "version": "0.15.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}